package com.freeter.modules.user.entity;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.lang.reflect.InvocationTargetException;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.beanutils.BeanUtils;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.enums.FieldFill;



/**
 * 用户授权表
 * 数据库通用操作实体类（普通增删改查）
 * @author xuchen
 * @email 171998110@qq.com
 * @date 2019-04-07 16:11:14
 */
@TableName("user_auths")
@ApiModel(value = "UserAuths")
public class UserAuthsEntity<T> implements Serializable {
	private static final long serialVersionUID = 1L;


	public UserAuthsEntity() {
		
	}
	
	public UserAuthsEntity(T t) {
		try {
			BeanUtils.copyProperties(this, t);
		} catch (IllegalAccessException | InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 用户id
	 */
				
	@NotBlank (message = "用户id不能为空") 			
	@ApiModelProperty(value = "用户id")
	private String userId;
	
	/**
	 * 登录类型(PHONE:手机号 EMAIL:邮箱  WECHAT:微信 WEIBO:微博 QQ:企鹅号)
	 */
				
	@NotBlank (message = "登录类型(PHONE:手机号 EMAIL:邮箱  WECHAT:微信 WEIBO:微博 QQ:企鹅号)不能为空") 			
	@ApiModelProperty(value = "登录类型(PHONE:手机号 EMAIL:邮箱  WECHAT:微信 WEIBO:微博 QQ:企鹅号)")
	private String identityType;
	
	/**
	 * 标识（手机号 邮箱 用户名或第三方应用的唯一标识）
	 */
	
	@TableId 					
	@ApiModelProperty(value = "标识（手机号 邮箱 用户名或第三方应用的唯一标识）",hidden = true)
	private String identifier;
	
	/**
	 * 手机号
	 */
				
	@NotBlank (message = "手机号不能为空") 			
	@ApiModelProperty(value = "手机号")
	private String phone;
	
	/**
	 * 密码凭证（站内的保存密码，站外的不保存或保存token)
	 */
				
	@NotBlank (message = "密码凭证（站内的保存密码，站外的不保存或保存token)不能为空") 			
	@ApiModelProperty(value = "密码凭证（站内的保存密码，站外的不保存或保存token)")
	private String credential;
	
	/**
	 * 创建时间
	 */
			
	@NotNull (message = "创建时间不能为空") 			
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 		
	@ApiModelProperty(value = "创建时间")
	private Date cTime;
	
	/**
	 * 设置：用户id
	 */
	public void setUserId(String userId) {
		this.userId = userId;
	}
	/**
	 * 获取：用户id
	 */
	public String getUserId() {
		return userId;
	}
	/**
	 * 设置：登录类型(PHONE:手机号 EMAIL:邮箱  WECHAT:微信 WEIBO:微博 QQ:企鹅号)
	 */
	public void setIdentityType(String identityType) {
		this.identityType = identityType;
	}
	/**
	 * 获取：登录类型(PHONE:手机号 EMAIL:邮箱  WECHAT:微信 WEIBO:微博 QQ:企鹅号)
	 */
	public String getIdentityType() {
		return identityType;
	}
	/**
	 * 设置：标识（手机号 邮箱 用户名或第三方应用的唯一标识）
	 */
	public void setIdentifier(String identifier) {
		this.identifier = identifier;
	}
	/**
	 * 获取：标识（手机号 邮箱 用户名或第三方应用的唯一标识）
	 */
	public String getIdentifier() {
		return identifier;
	}
	/**
	 * 设置：手机号
	 */
	public void setPhone(String phone) {
		this.phone = phone;
	}
	/**
	 * 获取：手机号
	 */
	public String getPhone() {
		return phone;
	}
	/**
	 * 设置：密码凭证（站内的保存密码，站外的不保存或保存token)
	 */
	public void setCredential(String credential) {
		this.credential = credential;
	}
	/**
	 * 获取：密码凭证（站内的保存密码，站外的不保存或保存token)
	 */
	public String getCredential() {
		return credential;
	}
	/**
	 * 设置：创建时间
	 */
	public void setCTime(Date cTime) {
		this.cTime = cTime;
	}
	/**
	 * 获取：创建时间
	 */
	public Date getCTime() {
		return cTime;
	}
}
